package com.dq.ad;

import android.content.Context;
import android.widget.ImageView;

import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.hx.currency.IImageLoader;
import com.qq.e.o.utils.ILog;

/**
 * 供小游戏sdk内部加载网络图片
 * <p>
 * 这个类是 sdk 将 ImageLoader 的外置的接口实现。
 * 为了避免与接入方使用不同版本导致的冲突，所以将这个功能延迟到 sdk 外面来提供。
 * 如果不存在冲突问题，使用这个默认的实现即可。
 */
public class MyImageLoader implements IImageLoader {

    /**
     * 加载网络图片方法
     *
     * @param context          上下文对象
     * @param imgUrl           网络图片地址
     * @param targetView       用来显示图片的ImageView
     * @param placeholderResId 加载过程中显示的图片
     * @param errorResId       表示加载错误显示的图片
     */
    @Override
    public void loadImage(Context context, String imgUrl, ImageView targetView, int placeholderResId, int errorResId) {
        // Glide 4.x版本可以使用这个，3.x版本或其他图片加载框架需自己实现功能
        // 该方法有加载gif图片功能，所以不要加asBitmap(),asDrawable()之类的方法
        if (context != null) {
            Glide.with(context)
                    .load(imgUrl)
                    .placeholder(placeholderResId)
                    .error(errorResId)
                    .diskCacheStrategy(DiskCacheStrategy.RESOURCE)
                    .into(targetView);
        } else {
            ILog.e("loadImage context == null");
        }
    }

    @Override
    public void loadImage(Context context, int i, ImageView imageView) {
        if (context != null) {
            Glide.with(context)
                    .load(i)
                    .diskCacheStrategy(DiskCacheStrategy.RESOURCE)
                    .into(imageView);
        } else {
            ILog.e("loadImage context == null");
        }
    }
}
